package com.quick.android.app;

import java.io.File;

import com.quick.android.utils.AppUtils;
import com.quick.android.utils.CheckUtils;
import com.quick.android.utils.FileUtils;

import android.content.Context;

/**
 * App 配置信息
 * 
 * @author quick
 * 
 */
public class AppConfig {
	public static boolean isDebug = true;

	private static final String CACHE_IMG_NAME = "images";
	private static final String CACHE_FILE_NAME = "files";
	private static final String CACHE_LOG_NAME = "logs";

	private static int mScreenWidth;
	private static int mScreenHeight;
	private static int mVersionCode;
	private static String mVersionName;
	private static String mDeviceId;
	private static String mCacheDir;
	private static String mCacheImgDir;
	private static String mCacheFileDir;
	private static String mCacheLogDir;

	/** 清空缓存 */
	public static void clearCache() {
		FileUtils.clearDir(mCacheImgDir);
		FileUtils.clearDir(mCacheFileDir);
		FileUtils.clearDir(mCacheLogDir);
	}

	/** 获取当前设备的屏幕宽度 */
	public static int getScreenWidth(Context context) {
		if (mScreenWidth <= 0) {
			mScreenWidth = AppUtils.getScreenWidth(context);
		}
		return mScreenWidth;
	}

	/** 获取当前设备的屏幕高度 */
	public static int getScreenHeight(Context context) {
		if (mScreenHeight <= 0) {
			mScreenHeight = AppUtils.getScreenHeight(context);
		}
		return mScreenHeight;
	}

	/** 获取当前APP版本号 */
	public static int getVersionCode(Context context) {
		if (mVersionCode <= 0) {
			mVersionCode = AppUtils.getVersionCode(context);
		}
		return mVersionCode;
	}

	/** 获取当前APP版本名 */
	public static String getVersionName(Context context) {
		if (CheckUtils.isStrEmpty(mVersionName)) {
			mVersionName = AppUtils.getVersionName(context);
		}
		return mVersionName;
	}

	/** 获取设备的IMEI号 */
	public static String getDeviceId(Context context) {
		if (CheckUtils.isStrEmpty(mDeviceId)) {
			mDeviceId = AppUtils.getSystemImei(context);
		}
		return mDeviceId;
	}

	/** 创建缓存目录路径 */
	public static String getCacheDir(Context context) {
		if (CheckUtils.isStrEmpty(mCacheDir)) {
			mCacheDir = context.getExternalCacheDir().getAbsolutePath();
		} else {
			FileUtils.makeDirs(mCacheDir);
		}
		return mCacheDir;
	}

	/** 获取缓存图片目录路径 */
	public static String getCacheImgDir(Context context) {
		if (CheckUtils.isStrEmpty(mCacheImgDir)) {
			if (CheckUtils.isStrEmpty(mCacheDir)) {
				mCacheDir = getCacheDir(context);
			}
			mCacheImgDir = mCacheDir + File.separator + CACHE_IMG_NAME;
		}
		FileUtils.makeDirs(mCacheImgDir);
		return mCacheImgDir;
	}

	/** 获取缓存文件目录路径 */
	public static String getCacheFileDir(Context context) {
		if (CheckUtils.isStrEmpty(mCacheFileDir)) {
			if (CheckUtils.isStrEmpty(mCacheDir)) {
				mCacheDir = getCacheDir(context);
			}
			mCacheFileDir = mCacheDir + File.separator + CACHE_FILE_NAME;
		}
		return mCacheFileDir;
	}

	/** 获取缓存LOG文件目录路径 */
	public static String getCacheLogDir(Context context) {
		if (CheckUtils.isStrEmpty(mCacheLogDir)) {
			if (CheckUtils.isStrEmpty(mCacheDir)) {
				mCacheDir = getCacheDir(context);
			}
			mCacheLogDir = mCacheDir + File.separator + CACHE_LOG_NAME;
		}

		return mCacheLogDir;
	}

}
